// 判断菜单的下一级是否是菜单
export interface MenuItem {
  childCount: number
  childIds: string[]
  childList: MenuItem[]
  code: string
  icon: string
  id: string
  menuType: 1 | 2 | 3
  name: string
  parentId: string
  selectChildIds: string[]
  selectCount: number
  selected: boolean
  sort: number
  url: string
  enabled?: boolean
}

export interface RoleForm {
  id?: string
  /**
   * 数据权限，(1, "所属组织"),(2, "全部"),(3, "自定义");
   */
  dataType: 1 | 2 | 3
  menusIds: string[]
  /**
   * 角色名称
   */
  name: string
  /**
   * 组织ids
   */
  orgIds: string[]
  /**
   * 教师ids
   */
  teacherIds: string[]
}

/**
 * PermissionRoleCacheVO
 */
export interface RoleDetail {
  childrenTree: MenuItem[]
  /**
   * 主动创建时间
   */
  createTime: string
  /**
   * 数据权限
   */
  dataType: 1 | 2 | 3
  /**
   * 角色 id
   */
  id: string
  /**
   * 角色名称
   */
  name: string
  /**
   * 勾选机构
   */
  orgList: OrgData[]
  /**
   * 勾选教师
   */
  teacherList: OrgData[]
  /**
   * 被动更新时间
   */
  updateTime: string
}

/**
 * Description:
 * Author: wyc
 * Create Date: 2024/8/2 10:38
 *
 * PermissionOrgTeacherVO
 */
export interface OrgData {
  /**
   * 创建时间
   */
  createTime: string
  /**
   * 全称
   */
  fullOrgName: string
  id: string
  /**
   * 是否拥有权限
   */
  isAuthActive: boolean
  /**
   * 组织名称
   */
  name: string
  /**
   * 工号
   */
  number: string
  /**
   * 0:组织
   * 1:教师
   */
  type: 0 | 1
}

// 判断菜单的下一级是否是菜单
export const judgeMenuChildIsMenu = (menu: MenuItem) => {
  return menu.menuType === 1 && menu.childList.length && menu.childList[0].menuType === 1
}
